$(function () {
  // 首页数据动态渲染
  var currentPage = 1;  //  当前的页面
  var pageSize = 3; // 每页展示个数
  function render() {
    $.ajax({
      type: "get",
      url: "/product/queryProductDetailList",
      data: {
        page: currentPage,
        pageSize: pageSize,
      },
      dataType: "json",
      success: function (res) {
        console.log(res);
        var str = template('tmp', res);
        $('tbody').html(str);
        setPage(res.total);
      }
    })
  }
  render();

  // 分页符
  function setPage(total) {
    $("#paginator").bootstrapPaginator({
      bootstrapMajorVersion: 3,//默认是2，如果是bootstrap3版本，这个参数必填
      currentPage: currentPage,//当前页
      totalPages: Math.ceil(total / pageSize), //总页数
      onPageClicked: function (event, originalEvent, type, page) {
        //为按钮绑定点击事件 page:当前点击的按钮值
        currentPage = page;
        // 点击后页面重新渲染
        render();
      }
    })
  };

  // 二级分类下拉列表数据动态填充
  $.ajax({
    type: "get",
    url: "/category/querySecondCategoryPaging",
    data: {
      page: 1,
      pageSize: 100,
    },
    dataType: "json",
    success: function (res) {
      console.log(res);
      var str = template('tmp-pro', res);
      $('.add-pro-list').html(str);
    }
  });

  // 下拉列表选中
  // 给a标签绑定点击事件， 获取a标签的文本，赋值给按钮的文本，
  // 获取a标签id，赋值给隐藏域
  $('.add-pro-list').on('click', 'a', function () {
    $('.product-span').text($(this).text());
    $('#brandId').val($(this).attr('data-id'));
    // 手动恢复下拉列表样式
    $(".add-form").data('bootstrapValidator').updateStatus('brandId', 'VALID');
  });

  //图片上传
  var imgArr = [];  // 用来记录上传图片的信息
  $("#file").fileupload({
    dataType: "json",
    //e：事件对象
    //data：图片上传后的对象，通过data.result.picAddr可以获取上传后的图片地址
    done: function (e, data) {
      console.log(data);
      // 把图片地址及名称放到数组中
      var imginfo = data.result;
      imgArr.unshift(imginfo);
      // 图片预览
      $('.img-box').prepend('<img src="' + imginfo.picAddr + '" alt="" height="100"></img>');
      //添加完成后判断图片的数量 不得超过3张
      if (imgArr.length > 3) {
        // 删除数组最后一个图片信息
        imgArr.pop();
        //同时删除图片盒子最后一张图片
        $(".img-box img:last-child").remove();
      };
      // 把选中的图片地址一起给到图片隐藏域(必须是3张)
      if (imgArr.length == 3) {
        $("#picArr").val(JSON.stringify(imgArr))
        // 图片数量够3张后手动恢复图片上传样式
        $(".add-form").data('bootstrapValidator').updateStatus('picArr', 'VALID');
      };
    }
  });

  // 表单校验
  //使用表单校验插件
  $('.add-form').bootstrapValidator({
    //1. 指定不校验的类型，默认为[':disabled', ':hidden', ':not(:visible)'],可以不设置
    excluded: [':disabled'],

    //2. 指定校验时的图标显示，默认是bootstrap风格
    feedbackIcons: {
      valid: 'glyphicon glyphicon-ok',
      invalid: 'glyphicon glyphicon-remove',
      validating: 'glyphicon glyphicon-refresh'
    },

    //3. 指定校验字段
    fields: {
      //校验二级分类id
      brandId: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请选择二级分类'
          },
        }
      },
      //校验商品名称
      proName: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品名称'
          },
        }
      },
      //校验商品描述
      proDesc: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品描述'
          },
        }
      },
      //校验商品库存
      num: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品库存'
          },
          //正则校验
          regexp: {
            regexp: /^[1-9]\d*$/,  // 2
            message: '库存必须是非0开头的数字'
          },
        }
      },
      //校验商品尺码
      size: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品尺码'
          },
          //正则校验
          regexp: {
            regexp: /^[1-9]\d-[1-9]\d$/,  // 
            message: '尺码必须是xx-xx格式， x是数字'
          },
        }
      },
      //校验商品原价
      oldPrice: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品原价'
          },
          //正则校验
          regexp: {
            regexp: /^[1-9]\d*$/,  // 2
            message: '数字类型'
          },
        }
      },
      //校验商品现价
      price: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品现价'
          },
          //正则校验
          regexp: {
            regexp: /^[1-9]\d*$/,  // 2
            message: '数字类型'
          },
        }
      },
      //校验图片
      picArr: {
        validators: {
          //不能为空
          notEmpty: {
            message: '上传3张图片'
          },
        }
      },

    }

  });

  // 表单校验成功时 发送请求
  $(".add-form").on('success.form.bv', function (e) {
    e.preventDefault();
    //使用ajax提交逻辑
    $.ajax({
      type: "post",
      url: "/product/addProduct",
      data: $('.add-form').serialize(),
      dataType: "json",
      success: function (res) {
        console.log(res);
        //页面重新渲染
        render();
        //隐藏模态框
        $('.product-modal').modal('hide');
        // 重置表单
        $(".add-form").data('bootstrapValidator').resetForm(true);
        // 手动重置二级分类和图片上传
        $('.product-span').text('请选择二级分类');
        $('.img-box').empty();
        //清空数组
        imgArr = [];
      }
    });
  });
})
